
package com.hlkj.pay.vo.order.resp.export;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.hlkj.pay.enums.PayOrderEnums;
import com.hlkj.pay.util.excel.OrdersStateConverter;
import com.hlkj.pay.util.excel.RefundOrdersStateConverter;
import com.hlkj.pay.util.excel.TimestampToDateConverter;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;

/**
 * @author HlpayTeam
 * @date 2024/10/09 11:37
 */
@Data
public class RefundOrderFileExport {

    @Schema(description = "商户号")
    @ExcelProperty("商户号")
    @ColumnWidth(20)
    private String sn;

    /**
     * 退款订单号
     */
    @Schema(description = "退款订单号")
    @ExcelProperty("退款订单号")
    @ColumnWidth(20)
    private String refundOrderNo;
    /**
     * 退款订单号
     */
    @Schema(description = "商户退款订单号")
    @ExcelProperty("商户退款订单号")
    @ColumnWidth(20)
    private String mchRefundOrderNo;

    /**
     * 平台订单号
     */
    @Schema(description = "平台订单号")
    @ExcelProperty("平台订单号")
    @ColumnWidth(20)
    private String payOrderNo;

    @Schema(description = "appid")
    @ExcelProperty("应用APPID")
    @ColumnWidth(20)
    private String appId;

    /**
     * 订单金额
     */
    @Schema(description = "订单金额")
    @ExcelProperty("订单金额")
    @ColumnWidth(20)
    private BigDecimal amount;

    /**
     * 本次退款金额
     */
    @Schema(description = "本次退款金额")
    @ExcelProperty("退款金额")
    @ColumnWidth(20)
    private BigDecimal refundAmount;

    /**
     * 退款，是否有退款，1 未退款 2 退款中 3 退款成功 4 退款完成
     * @see PayOrderEnums.REFUND_STATUS
     */
    @Schema(description = "退款状态")
    @ExcelProperty(value = "退款状态", converter = RefundOrdersStateConverter.class)
    @ColumnWidth(20)
    private Integer refundStatus;

    /**
     * 退款原因
     */
    @Schema(description = "退款原因")
    @ExcelProperty("退款原因")
    @ColumnWidth(20)
    private String refundReason;

    @Schema(description = "创建时间")
    @ExcelProperty(value = "创建时间", converter = TimestampToDateConverter.class)
    @ColumnWidth(25)
    private Long createTime;

    @Schema(description = "退款成功时间")
    @ExcelProperty(value = "退款成功时间", converter = TimestampToDateConverter.class)
    @ColumnWidth(25)
    private Long successTime;
    
}
